unit Options;

interface

{$IFDEF Server}
Uses UOptionen, Classes,
  {$IFDEF MSWINDOWS}
  Controls, StdCtrls, ExtCtrls, ComCtrls, Buttons, Graphics,
  {$ELSE}
  QControls, QStdCtrls, QExtCtrls, QComCtrls, QButtons, QGraphics,
  {$ENDIF}
  SysUtils, Math;
{$ELSE}
Uses UOptionen, Classes,
  {$IFDEF MSWINDOWS}
  Controls, Forms,
  {$ELSE}
  QControls, QForms,
  {$ENDIF}
  StdCtrls, ExtCtrls, ComCtrls, Buttons, Graphics, SysUtils, Math,
  {$IFDEF MSWINDOWS}
     Windows, WinProcs,
  {$ENDIF}
     Messages, Dialogs, Funktion;

type
  TAuswertungsOpt = class(TForm)
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    Bevel1: TBevel;
    Label2: TLabel;
    Edit1: TEdit;
    Label1: TLabel;
    Label4: TLabel;
    Edit3: TEdit;
    RadioGroup1: TRadioGroup;
    RadioGroup2: TRadioGroup;
    Label7: TLabel;
    Edit4: TEdit;
    ComboBox4: TComboBox;
    Label8: TLabel;
    PageControl1: TPageControl;
    Einzelbestenliste: TTabSheet;
    Doppelbestenliste: TTabSheet;
    AlleSpieler: TTabSheet;
    Label12: TLabel;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    Label3: TLabel;
    Label5: TLabel;
    ComboBox3: TComboBox;
    ComboBox6: TComboBox;
    Label6: TLabel;
    ComboBox5: TComboBox;
    Label13: TLabel;
    ComboBox7: TComboBox;
    Label14: TLabel;
    Edit6: TEdit;
    Label11: TLabel;
    Label15: TLabel;
    Edit7: TEdit;
    Edit8: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    Edit9: TEdit;
    Label18: TLabel;
    Edit10: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    BitBtn2: TBitBtn;
    TerminplanTab: TTabSheet;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Edit11: TEdit;
    Label19: TLabel;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    Tabelle: TTabSheet;
    CheckBox8: TCheckBox;
    CheckBox9: TCheckBox;
    CheckBox10: TCheckBox;
    Edit5: TEdit;
    Label9: TLabel;
    Label10: TLabel;
    Edit12: TEdit;
    CheckBox11: TCheckBox;
    Label20: TLabel;
    Edit13: TEdit;
    Label21: TLabel;
    Label22: TLabel;
    CheckBox12: TCheckBox;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure CheckBox8Click(Sender: TObject);
    procedure CheckBox9Click(Sender: TObject);
    procedure CheckBox10Click(Sender: TObject);
    procedure CheckBox11Click(Sender: TObject);
    {procedure Edit4Exit(Sender: TObject);}
    {procedure Edit5Exit(Sender: TObject);}
  private
    procedure Map;
    procedure FuelleAuswertungsListen;
    Procedure FuelleTabTabelle;
    Procedure RefreshTabTabelle;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

{$ENDIF}

Var AuswertungsOpt : TAuswertungsOpt;


implementation

Uses Konst, Klass, Vorlage, Team;

{$R *.DFM}


//  ***************************************************************************

{$IFNDEF Server}

procedure TAuswertungsOpt.FuelleAuswertungsListen;
Var Loop  : AuswertungsTyp;
    S     : String;
    Index : Integer;
Begin
  Combobox5.Items.Clear;
  Combobox6.Items.Clear;
  Combobox7.Items.Clear;
  Index := 0;
  For Loop := Low( AuswertungsTyp ) To High( AuswertungsTyp ) Do
   If Loop <> AuswertungsTypFehler then
    Begin
     S := Optionen.AuswertungString(Loop);
     Combobox5.Items.Add( S );
     Combobox6.Items.Add( S );
     Combobox7.Items.Add( S );
     If Optionen.AuswertungsArt_Einzel = Loop then Combobox5.ItemIndex := Index;
     If Optionen.AuswertungsArt_Doppel = Loop then Combobox6.ItemIndex := Index;
     If Optionen.AuswertungsArt_Alle_Spieler = Loop then Combobox7.ItemIndex := Index;
     Inc( Index );
    End;
End;

procedure TAuswertungsOpt.FuelleTabTabelle;
Var S : String;
Begin
 CheckBox9.Enabled  := Optionen.TabellenErgebnisse;
 CheckBox10.Enabled := Optionen.TabellenErgebnisse;
 CheckBox11.Enabled := Optionen.TabellenErgebnisse;
 Edit5.Enabled      := Optionen.TabellenErgebnisseLetzteSpiele;
 Edit12.Enabled     := Optionen.TabellenErgebnisseNachTerminplan;
 Edit13.Enabled     := Optionen.TabellenErgebnisseNachTerminplan;

 CheckBox8.Checked  := Optionen.TabellenErgebnisse;
 CheckBox9.Checked  := Optionen.TabellenErgebnisseSeitPublikation;
 CheckBox10.Checked := Optionen.TabellenErgebnisseLetzteSpiele;
 CheckBox11.Checked := Optionen.TabellenErgebnisseNachTerminplan;
 Edit5.Text         := '';
 Edit12.Text        := '';
 Edit13.Text        := '';
 If Optionen.TabellenLetzteSpieleAnzahl <> 0 then
  Begin
   Str(Optionen.TabellenLetzteSpieleAnzahl,S);
   Edit5.Text := S;
  End;
 If Optionen.TabellenTerminplanTageAnzahl <> 0 then
  Begin
   Str(Optionen.TabellenTerminplanTageAnzahl,S);
   Edit12.Text := S;
  End;
 If Optionen.TabellenTerminplanTage1Anzahl <> 0 then
  Begin
   Str(Optionen.TabellenTerminplanTage1Anzahl,S);
   Edit13.Text := S;
  End;
 CheckBox12.Checked := Optionen.TabellenAufAbsteiger;
End;

procedure TAuswertungsOpt.RefreshTabTabelle;
Var S : String;
Begin
 Edit5.Enabled      := CheckBox10.Checked And CheckBox8.Checked;
 If Edit5.Enabled then Edit5.Color := clWindow
  else Edit5.Color := cl3DLight;
 Edit12.Enabled     := CheckBox11.Checked And CheckBox8.Checked;
 If Edit12.Enabled then Edit12.Color := clWindow
  else Edit12.Color := cl3DLight;
 Edit13.Enabled     := CheckBox11.Checked And CheckBox8.Checked;
 If Edit13.Enabled then Edit13.Color := clWindow
  else Edit13.Color := cl3DLight;
End;

procedure TAuswertungsOpt.FormShow(Sender: TObject);
Var S : String;
begin
 PageControl1.ActivePage := Tabelle;

 Case Optionen.Runde of
  -2 : Combobox1.ItemIndex := 3;
  -1 : Combobox1.ItemIndex := 1;
   0 : Combobox1.ItemIndex := 0;
   1 : Combobox1.ItemIndex := 2;
   2 : Combobox1.ItemIndex := 4;
   3 : Combobox1.ItemIndex := 5;
   4 : Combobox1.ItemIndex := 6;
   5 : Combobox1.ItemIndex := 7;
 End;

 FuelleAuswertungsListen;

 Str(Optionen.Anz_Best_Einzel,S); Edit1.Text := S;
 Str(Optionen.Anz_Best_Doppel,S); Edit2.Text := S;
 Str(Optionen.Min_Games,S); Edit3.Text := S;
 Str(Optionen.Anz_Ersatz,S); Edit4.Text := S;
 Str(Optionen.Breite_Einzel,S); Edit6.Text := S;
 Str(Optionen.Breite_Doppel,S); Edit7.Text := S;
 Str(Optionen.Breite_Alle_Spieler,S); Edit8.Text := S;
 Str(Optionen.BreiteVereinEinzel,S); Edit9.Text := S;
 Str(Optionen.BreiteVereinDoppel,S); Edit10.Text := S;
 Combobox2.ItemIndex := 1;
 If (Pos('X >= Y',Optionen.Spieler_Vergleich) = 1) then Combobox2.ItemIndex := 0;
 Combobox3.ItemIndex := 1;
 If (Pos('X >= Y',Optionen.Doppel_Vergleich) = 1) then Combobox3.ItemIndex := 0;

 RadioGroup1.ItemIndex := Optionen.Was_ausgeben;
 RadioGroup2.ItemIndex := 1;
 If Optionen.Platz_Sparen then RadioGroup2.ItemIndex := 0;
 Case Optionen.Ausgabe Of
  InsAusgabefenster: Combobox4.ItemIndex := 0;
  AlsHtml:           Combobox4.ItemIndex := 1;
  NachWord:          Combobox4.ItemIndex := 2;
 End;
 CheckBox1.Checked := Optionen.AlleEinzel;
 CheckBox2.Checked := Optionen.AlleDoppel;
 RadioGroup1Click(Sender);
 CheckBox3.Checked := Optionen.TerminplanErgebnisse;
 CheckBox4.Checked := Optionen.TerminplanTermine;
 CheckBox5.Checked := Optionen.KurzesDatumsformat;
 CheckBox6.Checked := Optionen.TerminplanChronologisch;
 CheckBox7.Checked := Optionen.VerlegungenRot;
 Str(Optionen.BreiteVereinTermin,S); Edit11.Text := S;

 FuelleTabTabelle;
end;

procedure TAuswertungsOpt.Map;
Var Zahl, Error : Integer;
begin
 Case Combobox1.ItemIndex of
  0 : Optionen.Runde := 0;
  1 : Optionen.Runde := -1;
  2 : Optionen.Runde := 1;
  3 : Optionen.Runde := -2;
  4 : Optionen.Runde := 2;
  5 : Optionen.Runde := 3;
  6 : Optionen.Runde := 4;
  7 : Optionen.Runde := 5;
 End;

 Optionen.AuswertungsArt_Einzel :=
    Optionen.GetAuswertungsTyp(Combobox5.Items[Combobox5.ItemIndex]);

 Optionen.AuswertungsArt_Doppel :=
    Optionen.GetAuswertungsTyp(Combobox6.Items[Combobox6.ItemIndex]);

 Optionen.AuswertungsArt_Alle_Spieler :=
    Optionen.GetAuswertungsTyp(Combobox7.Items[Combobox7.ItemIndex]);

 Val(Edit1.Text,Zahl,Error);
 If Error = 0 then Optionen.Anz_Best_Einzel := Zahl;

 Val(Edit2.Text,Zahl,Error);
 If Error = 0 then Optionen.Anz_Best_Doppel := Zahl;

 Val(Edit3.Text,Zahl,Error);
 If Error = 0 then Optionen.Min_Games := Zahl;

 Val(Edit4.Text,Zahl,Error);
 If Error = 0 then Optionen.Anz_Ersatz := Zahl;

 Val(Edit6.Text,Zahl,Error);
 If Error = 0 then Optionen.Breite_Einzel := Zahl;

 Val(Edit7.Text,Zahl,Error);
 If Error = 0 then Optionen.Breite_Doppel := Zahl;

 Val(Edit8.Text,Zahl,Error);
 If Error = 0 then Optionen.Breite_Alle_Spieler := Zahl;

 Val(Edit9.Text,Zahl,Error);
 If Error = 0 then Optionen.BreiteVereinEinzel := Zahl;

 Val(Edit10.Text,Zahl,Error);
 If Error = 0 then Optionen.BreiteVereinDoppel := Zahl;

 If (Combobox2.ItemIndex = 0) then Optionen.Spieler_Vergleich := 'X >= Y'
  else Optionen.Spieler_Vergleich := 'X <= Y';
 If (Combobox3.ItemIndex = 0) then Optionen.Doppel_Vergleich := 'X >= Y'
  else Optionen.Doppel_Vergleich := 'X <= Y';

 Optionen.Was_ausgeben := RadioGroup1.ItemIndex;
 Optionen.Platz_Sparen := (RadioGroup2.ItemIndex = 0);

 Optionen.Tabellarisch := (Combobox4.ItemIndex > 0);
 Case Combobox4.ItemIndex of
  0 : Optionen.Ausgabe := InsAusgabefenster;
  1 : Optionen.Ausgabe := AlsHtml;
  2 : Optionen.Ausgabe := NachWord;
 End;

 Optionen.AlleEinzel := CheckBox1.Checked;
 Optionen.AlleDoppel := CheckBox2.Checked;

 Optionen.TerminplanErgebnisse := CheckBox3.Checked;
 Optionen.TerminplanTermine := CheckBox4.Checked;
 Optionen.KurzesDatumsformat := CheckBox5.Checked;
 Optionen.TerminplanChronologisch := CheckBox6.Checked;
 Optionen.VerlegungenRot := CheckBox7.Checked;
 Val(Edit11.Text,Zahl,Error);
 If Error = 0 then Optionen.BreiteVereinTermin := Zahl;

 // Tabellenparameter
 Optionen.TabellenErgebnisse := CheckBox8.Checked;
 Optionen.TabellenErgebnisseSeitPublikation := CheckBox9.Checked;
 Optionen.TabellenErgebnisseLetzteSpiele := CheckBox10.Checked;
 Optionen.TabellenErgebnisseNachTerminplan := CheckBox11.Checked;
 Val(Edit5.Text,Zahl,Error);
 If Error = 0 then Optionen.TabellenLetzteSpieleAnzahl := Zahl
  else Optionen.TabellenLetzteSpieleAnzahl := 0;
 Val(Edit12.Text,Zahl,Error);
 If Error = 0 then Optionen.TabellenTerminplanTageAnzahl := Zahl
  else Optionen.TabellenTerminplanTageAnzahl := 0;
 Val(Edit13.Text,Zahl,Error);
 If Error = 0 then Optionen.TabellenTerminplanTage1Anzahl := Zahl
  else Optionen.TabellenTerminplanTage1Anzahl := 0;
 Optionen.TabellenAufAbsteiger := CheckBox12.Checked;
 Optionen.Save;
End;

procedure TAuswertungsOpt.BitBtn1Click(Sender: TObject);
begin
 Map;
 Hide;
end;

procedure TAuswertungsOpt.RadioGroup1Click(Sender: TObject);
begin
  Case RadioGroup1.ItemIndex Of
   0 : Begin
        CheckBox2.Enabled := False;
        CheckBox1.Enabled := True;
        CheckBox2.Checked := False;
       End;
   1 : Begin
        CheckBox1.Enabled := False;
        CheckBox2.Enabled := True;
        CheckBox1.Checked := False;
       End;
   2 : Begin
        CheckBox1.Enabled := True;
        CheckBox2.Enabled := True;
       End;
  End;
end;

procedure TAuswertungsOpt.BitBtn2Click(Sender: TObject);
begin
  Map;
  Optionen.VorlagenStandard( Klasse.Vorlage );
  FormShow( Sender );
end;

procedure TAuswertungsOpt.CheckBox4Click(Sender: TObject);
begin
  If Not CheckBox4.Checked then CheckBox5.Checked := False;
  CheckBox5.Enabled := CheckBox4.Checked;
end;

procedure TAuswertungsOpt.CheckBox8Click(Sender: TObject);
begin
 CheckBox9.Enabled := CheckBox8.Checked;
 CheckBox10.Enabled := CheckBox8.Checked;
 CheckBox11.Enabled := CheckBox8.Checked;
 RefreshTabTabelle;
end;

procedure TAuswertungsOpt.CheckBox9Click(Sender: TObject);
begin
 If CheckBox9.Checked then
  Begin
   CheckBox10.Checked := False;
   CheckBox11.Checked := False;
  End;
 RefreshTabTabelle;
end;

procedure TAuswertungsOpt.CheckBox10Click(Sender: TObject);
begin
 If CheckBox10.Checked then
  Begin
   CheckBox9.Checked := False;
   CheckBox11.Checked := False;
  End;
 RefreshTabTabelle;
 If Edit5.Enabled then Edit5.Text := '10' else Edit5.Text :='';
end;

procedure TAuswertungsOpt.CheckBox11Click(Sender: TObject);
begin
 If CheckBox11.Checked then
  Begin
   CheckBox9.Checked := False;
   CheckBox10.Checked := False;
  End;
 RefreshTabTabelle;
 If Edit12.Enabled then Edit12.Text := '10' else Edit12.Text :='';
 If Edit13.Enabled then Edit13.Text := '7' else Edit13.Text :='';
end;

{$ENDIF }


end.
